package main

import (
	"fmt"
	"net"
)

func main() {
	//制定服务器通信协议，ip地址，端口号,创建一个用于监听的socket
	listener, err := net.Listen("tcp", "127.0.0.1:8000")
	if err != nil {
		fmt.Println("error")
		return
	}
	defer listener.Close()
	//阻塞监听客户端连接请求
	fmt.Println("服务器等待客户端建立连接")
	//accept 监听
	conn, err2 := listener.Accept()
	if err2 != nil {
		fmt.Println("listener accept error")
		return
	}
	fmt.Println("服务器与客户端建立连接成功")
	//	//读取客户端数据
	buf := make([]byte, 4096)
	n, err3 := conn.Read(buf)
	if err3 != nil {
		fmt.Println("conn.read error")
		return
	}
	defer conn.Close()
	//处理数据
	fmt.Println("服务器读到数据", string(buf[:n]))

	_, error4 := conn.Write(buf[:n])
	if error4 != nil {
		fmt.Println("conn.write error")
		return
	}
	fmt.Println("服务器向客户端写入数据", string(buf[n:]))
	//关闭socket

}
